home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / mman.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  68 lines

  1. #ifndef _LINUX_MMAN_H
  2. #define _LINUX_MMAN_H
  3.  
  4. #include <linux/config.h>
  5. #include <linux/mm.h>
  6.  
  7. #include <asm/atomic.h>
  8. #include <asm/mman.h>
  9.  
  10. #define MREMAP_MAYMOVE    1
  11. #define MREMAP_FIXED    2
  12.  
  13. #define OVERCOMMIT_GUESS        0
  14. #define OVERCOMMIT_ALWAYS        1
  15. #define OVERCOMMIT_NEVER        2
  16. extern int sysctl_overcommit_memory;
  17. extern int sysctl_overcommit_ratio;
  18. extern atomic_t vm_committed_space;
  19.  
  20. #ifdef CONFIG_SMP
  21. extern void vm_acct_memory(long pages);
  22. #else
  23. static inline void vm_acct_memory(long pages)
  24. {
  25.     atomic_add(pages, &vm_committed_space);
  26. }
  27. #endif
  28.  
  29. static inline void vm_unacct_memory(long pages)
  30. {
  31.     vm_acct_memory(-pages);
  32. }
  33.  
  34. /*
  35.  * Optimisation macro.  It is equivalent to:
  36.  *      (x & bit1) ? bit2 : 0
  37.  * but this version is faster.
  38.  * ("bit1" and "bit2" must be single bits)
  39.  */
  40. #define _calc_vm_trans(x, bit1, bit2) \
  41.   ((bit1) <= (bit2) ? ((x) & (bit1)) * ((bit2) / (bit1)) \
  42.    : ((x) & (bit1)) / ((bit1) / (bit2)))
  43.  
  44. /*
  45.  * Combine the mmap "prot" argument into "vm_flags" used internally.
  46.  */
  47. static inline unsigned long
  48. calc_vm_prot_bits(unsigned long prot)
  49. {
  50.     return _calc_vm_trans(prot, PROT_READ,  VM_READ ) |
  51.            _calc_vm_trans(prot, PROT_WRITE, VM_WRITE) |
  52.            _calc_vm_trans(prot, PROT_EXEC,  VM_EXEC );
  53. }
  54.  
  55. /*
  56.  * Combine the mmap "flags" argument into "vm_flags" used internally.
  57.  */
  58. static inline unsigned long
  59. calc_vm_flag_bits(unsigned long flags)
  60. {
  61.     return _calc_vm_trans(flags, MAP_GROWSDOWN,  VM_GROWSDOWN ) |
  62.            _calc_vm_trans(flags, MAP_DENYWRITE,  VM_DENYWRITE ) |
  63.            _calc_vm_trans(flags, MAP_EXECUTABLE, VM_EXECUTABLE) |
  64.            _calc_vm_trans(flags, MAP_LOCKED,     VM_LOCKED    );
  65. }
  66.  
  67. #endif /* _LINUX_MMAN_H */
  68.